/****************************************************************************
void  ReceiveDate2()
{			u16 N=0;	bit Flog=1;
			while(Flog)
			{		if((R_u2[N]==DTHD1)&&(R_u2[N+1]==DTHD2))   //5A A5 07 82 1000 0001 0002
					{	     if(R_u2[N+3]==0x82)     
						     {	   
									     Response_flog=RESPONSE_UART2;//应答标记
									     Crc_check_flog=CRC_CHECK_UART2;//Crc标记
                       deal_82_cmd(2,R_u2+N);//处理82指令
			                 N=N+R_u2[N+2]+2;
						     }								   // 0	 1	2  3  4	5  6  7	8  9 10
						     else if(R_u2[N+3]==0x83) 		   //5A A5 08 83 1000 02 0001 0002
						     {	   
									    
								   		 u8 Val[FRAME_LEN]={0}; 
										   Crc_check_flog=CRC_CHECK_UART2;//Crc标记
                       deal_83_cmd(2,Val,R_u2+N);//处理83指令
											 N=N+R_u2[N+2]+2;
						     }else
						      N++;
					}
					if(N<(R_CN2-4)) N++;
					else            Flog=0; 
			}
}
// ========================================================================
void  OneSendData3(u8 Dat)
{     while (Busy3);               
			Busy3 = 1;
			SBUF3 = Dat; 
}
/****************************************************************************
void  ReceiveDate3()
{			u16 N=0;	bit Flog=1;
			while(Flog)
			{		if((R_u3[N]==DTHD1)&&(R_u3[N+1]==DTHD2))   //5A A5 07 82 1000 0001 0002
					{	     if(R_u3[N+3]==0x82)     
						     {	   u8 i=0;
								       for(i=0;i<((R_u3[N+2]-3)/2);i++)
								       Write_Dgus(((R_u3[N+4]<<8)+R_u3[N+5]+i),((R_u3[N+6+2*i]<<8)+R_u3[N+7+2*i]));
									 		 Response_flog=RESPONSE_UART3;
                       if(Response_flog)   
										   {
                        u8 Val[]={DTHD1,DTHD2,0X03,0X82,0X4F,0X4B}; 									 
				                for(i=0;i<6;i++)OneSendData3(Val[i]);					              //5A A5 03 82 4F 4B
									     }
			                 N=N+R_u3[N+2]+2;
						     }								   // 0	 1	2  3  4	5  6  7	8  9 10
						     else if(R_u3[N+3]==0x83) 		   //5A A5 08 83 1000 02 0001 0002
						     {	    u8 i=0;u16 Temp=0;
								   			u8 Val[FRAME_LEN]={0}; 
                    for(i=0;i<7;i++)
												Val[i]=R_u3[N+i];
								    for(i=0;i<Val[6];i++)
								    {
								       Temp=Read_Dgus(((Val[4]<<8)+Val[5]+i));
										   Val[7+2*i]=(u8)(Temp>>8);
										   Val[8+2*i]=(u8)(Temp);
								    }
								    Val[2]=(2*Val[6])+4;
								    for(i=0;i<(Val[2]+3);i++)
								    OneSendData3(Val[i]);while(Busy3);
										N+=6;
						     }else
						      N++;
					}
					if(N<(R_CN3-4)) N++;
					else            Flog=0; 
			}
}
//============================================================================
void OneSendData4(u8 Dat)
{      while (Busy4);               
			 Busy4 = 1;
			 SBUF4_TX = Dat; 
}
/****************************************************************************
void  ReceiveDate4()
{			u16 N=0;	bit Flog=1;
			while(Flog)
			{		if((R_u4[N]==DTHD1)&&(R_u4[N+1]==DTHD2))   //5A A5 07 82 1000 0001 0002
					{	     if(R_u4[N+3]==0x82)     
						     {	    u8 i=0;
								    for(i=0;i<((R_u4[N+2]-3)/2);i++)
								    Write_Dgus(((R_u4[N+4]<<8)+R_u4[N+5]+i),((R_u4[N+6+2*i]<<8)+R_u4[N+7+2*i]));
									  Response_flog=RESPONSE_UART4;
                    if(Response_flog)   
										{
                        u8 Val[]={DTHD1,DTHD2,0X03,0X82,0X4F,0X4B}; 									 
						            TR4=1;
				                for(i=0;i<6;i++)OneSendData4(Val[i]);
					              while(Busy4);TR4=0;                   //5A A5 03 82 4F 4B
									  }
									  N=N+R_u4[N+2]+2;
						     }								   // 0	 1	2  3  4	5  6  7	8  9 10
						     else if(R_u4[N+3]==0x83) 		   //5A A5 08 83 1000 02 0001 0002
						     {	    u8 i=0;u16 Temp=0;
								   			u8 Val[FRAME_LEN]={0}; 
                    for(i=0;i<7;i++)
												Val[i]=R_u4[N+i];
								    for(i=0;i<Val[6];i++)
								    {
								       Temp=Read_Dgus(((Val[4]<<8)+Val[5]+i));
										   Val[7+2*i]=(u8)(Temp>>8);
										   Val[8+2*i]=(u8)(Temp);
								    }
								    Val[2]=(2*Val[6])+4;TR4=1;
								    for(i=0;i<(Val[2]+3);i++)
								    OneSendData4(Val[i]);while(Busy4);TR4=0;
										N+=6;
						     }else
						      N++;
					}
					else
					{	     if(N<(R_CN4-4)) N++;
						     else            Flog=0; 
					}
			}
}
/****************************************************************************
void  OneSendData5(u8 Dat)
{           while (Busy5);               
			Busy5 = 1;
			SBUF5_TX = Dat; 
}
/****************************************************************************
void  ReceiveDate5()
{			u16 N=0;	bit Flog=1;
			while(Flog)
			{		if((R_u5[N]==DTHD1)&&(R_u5[N+1]==DTHD2))   //5A A5 07 82 1000 0001 0002
					{	     if(R_u5[N+3]==0x82)     
						     {	    u8 i=0; 
                    
								    for(i=((R_u5[N+2]-3)/2)-1;i<((R_u5[N+2]-3)/2);i--)
								    Write_Dgus(((R_u5[N+4]<<8)+R_u5[N+5]+i),((R_u5[N+6+2*i]<<8)+R_u5[N+7+2*i]));
									  Response_flog=RESPONSE_UART5;
                    if(Response_flog)   
										{
                        u8 Val[]={DTHD1,DTHD2,0X03,0X82,0X4F,0X4B}; 									 
						            TR5=1;
				                for(i=0;i<6;i++)OneSendData5(Val[i]);
					              while(Busy5);TR5=0;                   //5A A5 03 82 4F 4B
									  }
									  N=N+R_u5[N+2]+2;
						     }								   // 0	 1	2  3  4	5  6  7	8  9 10
						     else if(R_u5[N+3]==0x83) 		   //5A A5 08 83 1000 02 0001 0002
						     {	    u8 i=0;u16 Temp=0;
									      u8 Val[FRAME_LEN]={0}; 
                   for(i=0;i<7;i++)
												Val[i]=R_u5[N+i];
								    for(i=0;i<Val[6];i++)
								    {
								       Temp=Read_Dgus(((Val[4]<<8)+Val[5]+i));
										   Val[7+2*i]=(u8)(Temp>>8);
										   Val[8+2*i]=(u8)(Temp);
								    }
								    Val[2]=(2*Val[6])+4;TR5=1;
								    for(i=0;i<(Val[2]+3);i++)
								    OneSendData5(Val[i]);while(Busy5);TR5=0;
										N+=6;
						     }else
								   N++;
						     
					}
					else
					{	     if(N<(R_CN5-4)) N++;
						     else            Flog=0; 
					}
			}
}